Master directory verification workflows, proof generation, trade code management, and comprehensive testing strategy for the Directories, Proofs & Trades module
The Directories, Proofs & Trades (DPT) module is a centralized interface within the Contacts system that enables Level 3 Chapter Staff to manage the annual directory verification cycle. At its core, DPT allows chapter staff to verify that company data is current and accurate before the chapter publishes its printed and digital directories.
Every year, ABC chapters need to ensure that member company information—contact details, designations, trade classifications, volume data—is up to date. The DPT module provides a structured workflow: a verification date range opens, companies verify their information (either through staff entry or via the member portal), the deadline passes, reports are generated, and verification emails are sent. This cycle repeats annually with a flag reset.
DPT is permission-gated (Level 3 Chapter Users only) and date-driven. Your tests must validate permission enforcement, date range logic, and the accuracy of flag-based verification status tracking across the entire lifecycle.
DPT is organized into six main functional areas, each handling a critical part of the verification workflow:
The annual verification cycle follows a predictable flow that QA must validate end-to-end:
Manage Settings is the control center. It's expanded by default and displays the verification date range, real-time statistics, memos, and reset functionality. This is where every verification cycle begins.
Filtering narrows the dataset; viewing applies actions. Together they enable targeted verification management across large company rosters.
This section determines what data appears in reports and emails. It includes preference set management for reusable field configurations.
Preference sets are client-side only. If you save a set, close the browser, and reopen, the set should be gone. Cross-session persistence is a bug.
Sending verification emails is a high-stakes operation. The workflow includes preview/rehearsal, strong warnings, and confirmation steps.
DPT supports 12 distinct report formats grouped by purpose:
QA must test each report type to confirm correct data inclusion, proper formatting, and field visibility based on the Fields to Include in Outputs selections.
During an active verification date range, member portal users see a verification checkbox and the Portal Instructions memo. When they check the box and submit:
DPT testing spans six core domains. Each requires distinct test cases and validation approaches:
The member portal must correctly display and handle verification during active date ranges. Test scenarios:
DPT is strictly Level 3 Chapter User access only. Test that:
Test that DPT correctly maintains state across actions:
Click each rule to expand and see implications for testing:
Access is strictly role-gated. Any non-Level-3 user attempting to access DPT receives a permission-denied error. This must be enforced at the page load and for all API calls.
The portal checkbox is visible ONLY when the current date/time falls within the From and To dates. Before the From date or after the To date, the checkbox is hidden or disabled.
▼This is the primary mechanism controlling the annual cycle. Test by advancing system time or setting dates in the past/future.
Exact time boundaries matter. Verification should be possible at 12:01 a.m. on the From date and up to 11:59:59 p.m. on the To date. Test edge cases by testing at 12:00 a.m. (should fail) and 11:59:59 p.m. (should succeed).
A company is verified if the flag is TRUE, regardless of when it was verified. If a company verifies on Day 5 of a 10-day cycle, it remains verified even after the deadline. The verification date is recorded but does not control status.
If this flag is set, the company is completely hidden from all Directory, Trades, and Proof reports, regardless of verification status. It's a hard exclusion. Test that a company with this flag does not appear in any report type.
The company still appears in reports and is not excluded, but the volume/revenue fields are blank or suppressed. Test that company names, trade codes, and other data appear, but volume column is empty.
Selecting "CSI Division" while "NAICS" is already selected should deselect NAICS automatically. Only one trade code option can be active at a time. Test all three combinations: CSI, NAICS, Directory Codes.
If CSI is not selected, the "CSI Division" and "CSI Subdivision" radio buttons should be grayed out or disabled. Test by unchecking CSI and verifying the Division/Subdivision controls become inactive.
Save a Preference Set, close the browser completely (clear session), and reopen the DPT page. The saved set should be gone. Preference sets are client-side/session-only storage.
When filtering or displaying dues information, show the category (e.g., "Category 1", "Category 2") and description, but never display dollar amounts or payment schedules. Only Schedule 1 dues should display (ignore other schedules).
If no contact types are selected before sending an email, the email goes to the company's primary contact by default. Test by not selecting any contact types and verifying the primary contact receives the email.
A modal warning must appear if the user tries to send an email without clicking "Preview". The warning should say something like "You did not preview this email. Are you sure you want to send without reviewing?" Test by attempting to send without previewing.
When the "Reset All Flags" button is clicked and confirmed, every company's verification flag is set to FALSE. The system does not keep a history of previous cycles. This is destructive and should require a confirmation modal.
If a company's data (name, trade codes, designations, etc.) is changed after the To date (Through Date), the system should log and flag this change for audit purposes. Test by verifying a company, waiting for the deadline to pass, then changing company data and checking for audit records.
The "Through Date" term is interchangeable with the "To date" field. When you set the To date to "2026-05-31", the Through Date for post-deadline audit purposes is also "2026-05-31".
Exactly 12 report types must be available. Test that all 12 are selectable and generate correctly: Directory (Excel Single, Excel Multiple, Printed 3-col), Trades by Division (Excel, Printed 3-col, Simple List), Trades by Detail (Excel, Printed 3-col, Simple List), Proof (Excel Single, Excel Contact Types, Printed).
When generating a Printed Proof report, each company entry should include text like "Check here if no changes" or "No changes required" so that printed copy recipients can quickly indicate whether they made edits.
When DPT first loads, Manage Settings is already expanded. All other sections (Filter Companies, View Companies, Fields to Include, Reports, Email) are collapsed. Test that the UI state matches this default on page load.
These scenarios push DPT into corner cases that may reveal bugs or unexpected behavior. Build test cases around each:
Setup: Set a verification date range where both From and To dates are in the past (e.g., 2024-01-01 to 2024-06-30).
Expected Behavior: The portal checkbox should NOT be visible to members. Staff can still manually mark companies as verified in DPT. Reports and emails should still generate. No automatic verification should occur.
QA Action: Verify portal checkbox is hidden, staff verification still works, and system doesn't treat the past date range as "active."
Setup: During an active verification cycle, 50 of 200 companies have verified. A staff member clicks "Reset All Flags."
Expected Behavior: All 200 companies' verification flags revert to FALSE. Verified count drops to 0. Staff receives a confirmation modal warning that this is destructive. No historical record remains.
QA Action: Test the confirmation modal, verify all flags clear, verify count resets to 0/200, and confirm no audit trail or backup exists for the 50 that were verified.
Setup: User unchecks the CSI trade code option. CSI Division and CSI Subdivision radio buttons disable. User tries to click on CSI Division (or it's already selected from a previous session state).
Expected Behavior: CSI Division radio button should be disabled/grayed out and not clickable. If somehow a division is still selected in the UI, it should not be applied to outputs (outputs ignore the selection if CSI is unchecked).
QA Action: Verify the disabled state visually, test that clicking the disabled radio fails silently, and generate a report to confirm CSI division filtering is not applied.
Setup: Leave all three memo fields in Manage Settings blank, then compose and send a verification email.
Expected Behavior: The email should still send, but with empty memo sections (or a default "No instructions provided" message). Printed reports should also handle empty memos gracefully (no blank lines or formatting breaks).
QA Action: Send email with empty memos, inspect the received email and any generated reports, and confirm no formatting issues or errors occur.
Setup: Set a verification date range (From: 2026-05-01, To: 2026-06-30). Test as a portal user on 2026-04-30 (before) and 2026-07-01 (after).
Expected Behavior: The verification checkbox should be completely hidden or disabled. Submitting a form with the checkbox manually enabled (via browser dev tools) should be rejected server-side with an error message.
QA Action: Verify the checkbox doesn't appear in the portal UI, test the form submission outside the date range, and confirm server-side validation rejects it.
Setup: Select fields, save as "Q2 Template". Modify fields, save again as "Q2 Template".
Expected Behavior: The system should overwrite the previous "Q2 Template" with the new settings, or show a confirmation modal asking "Overwrite existing set?"
QA Action: Test both scenarios—overwrite and confirmation. Load the set and verify it contains the second configuration, not the first.
Setup: A company has "Do Not Print in Directory" flag set. The verification date range is active. The company portal user checks the verification checkbox and submits.
Expected Behavior: The company's verification flag is set to TRUE (the company did verify). However, when you generate any report, the company should NOT appear because "Do Not Print in Directory" is a hard exclusion. The verified count should include this company (it verified), but reports exclude it.
QA Action: Verify the company via portal, check that verified count increases, then generate a report and confirm the company is not listed despite being verified.
After changes to DPT code, run these checklist items to catch regressions:
To conduct comprehensive DPT testing, your test environment must be seeded with realistic data. Follow these setup instructions:
Before starting DPT testing, confirm: (1) 50+ test companies with varied types, regions, and codes are created; (2) Verification date range is active and includes today; (3) Memos are populated in Manage Settings; (4) Level 3 test account is available; (5) Email and report outputs route to test storage; (6) Database snapshot exists for easy restoration.